$NG.AllReady(function (page, { useValuesChange, useDataIndexChange, useUpdateRows, useUpdateRow }) {
    const mstform = $NG.getCmpApi("p_form_month_return_fore_m");
    const dgrid1 = $NG.getCmpApi("p_form_month_return_fore_d");
    // console.log("mstform", Number(mstform.getItem("u_month").getValue())+1);
    // console.log("mstform", Number(mstform.getItem("u_year").getValue())+1);
  
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    if (mstform) {
      if (page.oType == "add") {
        mstform.getItem("u_year").setValue({
          value: new Date().getFullYear(),
          label: new Date().getFullYear(),
        });
        mstform.getItem("u_month").setValue({
          value: new Date().getMonth() + 1,
          label: new Date().getMonth() + 1 + "月",
        });
        mstform.getItem("bill_name").setValue(new Date().getFullYear() + "年" + new Date().getMonth() + 1 + "月度回款预测");
      }
      //选择项目经理后带出项目信息
      useValuesChange(({ args }) => {
        getCntRepaymentInfoByPm(mstform.getItem("phid_emp").getValue());
      }, "p_form_month_return_fore_m.phid_emp");
      useValuesChange(({ args }) => {
        getRepaymentPlanByYM();
      }, "p_form_month_return_fore_m.u_month");
      useValuesChange(({ args }) => {
        getRepaymentPlanByYM();
      }, "p_form_month_return_fore_m.uyear");
    } else {
      console.log("mstform不存在");
    }
    ////////////////////////////////////////////////////////////--dgrid1--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--dgrid1--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--dgrid1--////////////////////////////////////////////////////////////
  
    if (dgrid1) {
      console.log("dgrid1存在");
    } else {
      console.log("dgrid1不存在");
    }
    useUpdateRows(({ args }) => {
      var sumAmt = 0;
      const rows = args[0];
      rows.forEach((items) => {
        if (items.u_jhhk) {
          sumAmt += parseFloat(items.u_jhhk);
        }
        //汇总赋值
        mstform.getItem("u_month_plan").setValue(sumAmt);
      });
    }, "p_form_month_return_fore_d");
    ////////////////////////////////////////////////////////////--function--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--function--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--function--////////////////////////////////////////////////////////////
  
    //根据项目经理获取合同回款信息
    async function getCntRepaymentInfoByPm(managerId) {
      console.log(`项目经理ID:${managerId}`);
      try {
        await dgrid1.clearRows();
        const gridArr = []; // 定义表体数组
        // 获取主数据
        const res = await $NG.execServer("getCntRepaymentInfoByPm", { phid: managerId, cnt_mode: 1, pct_phid: 8570000000000020 });
        if (res.count > 0) {
          const datas = JSON.parse(res.data);
          console.log(datas);
          // 解析每一项并填充表体数组
          datas.forEach((items) => {
            const item = items.extendObjects;
            gridArr.push({
              u_cnt_no: item.pcm_no,
              u_cnt_name: item.pcm_phid,
              u_cnt_name_EXName: item.pcm_name,
              u_pc_no: item.pc_no,
              phid_pc: item.phid_pc,
              phid_pc_EXName: item.pc_name,
              phid_emp: item.project_manager_phid,
              phid_emp_EXName: item.project_manager_name,
              u_xmlx: item.ywlx_phid,
              u_xmlx_EXName: item.ywlx_name,
              u_xsy: item.user_xrxs_phid,
              u_xsy_EXName: item.user_xrxs_name,
            });
          });
          // 更新表格视图
          await dgrid1.addRows(gridArr);
          getRepaymentPlanByYM();
          await dgrid1.refreshView();
        } else {
          console.log("功能扩展没有数据");
          await dgrid1.clearRows();
        }
      } catch (error) {
        console.error("功能扩展报错:", error);
      }
    }
    // 根据项目获取合同回款信息
    function getRepaymentPlanByYM(params) {
      var sumAmt = 0;
      dgrid1.getRows().forEach((items, index) => {
        $NG.execServer("getRepaymentPlanByYM", { phid_pc: items.phid_pc, u_year: mstform.getItem("u_year").getValue(), u_month: Number(mstform.getItem("u_month").getValue()) }, function (res) {
          if (res.count > 0) {
            var data = JSON.parse(res.data)[0].extendObjects; //单返回值
            items.u_jhhk = data.amt_sum;
            items.u_cyhk = data.amt_next1;
            items.u_hyhk = data.amt_next2;
            if (items.u_jhhk) {
              sumAmt += parseFloat(items.u_jhhk);
            }
            //汇总赋值
            mstform.getItem("u_month_plan").setValue(sumAmt);
          } else {
            console.log("功能扩展没有数据");
          }
          dgrid1.refreshView();
        });
        $NG.execServer("getPcRepaymentSum", { phid_cnt: items.u_cnt_name }, function (res) {
          if (res.count > 0) {
            var data = JSON.parse(res.data)[0].extendObjects; //单返回值
            items.u_ljhk = data.app_amt_vat_fc;
          } else {
            console.log("功能扩展没有数据");
          }
          dgrid1.refreshView();
        });
        $NG.execServer("getCntInvoice", { phid_cnt: items.u_cnt_name }, function (res) {
          if (res.count > 0) {
            var data = JSON.parse(res.data)[0].extendObjects; //单返回值
            items.u_ljkp = data.u_jshj;
          } else {
            console.log("功能扩展没有数据");
          }
          dgrid1.refreshView();
        });
      });
    }
    /**
     *
     * 功能扩展区
     *
     */
    //获取项目信息
  
    //获取合同信息
    function getCntMInfoByPhid() {
      $NG.execServer("getCntMInfoByPhid", { phid: mstform.getItem("u_cnt_name").getValue() }, function (res) {
        if (res.count == 0) return;
        const datas = JSON.parse(res.data)[0].extendObjects;
        console.log(datas);
        $NG.updateState((updater) => {
          updater.data.p_form_year_return_plan_m.setProps({
            u_cnt_no: datas.pcm_no, //合同名称
            u_htxe: datas.cnt_sum_vat_fc,
          });
        });
      });
    }
  
    /**
     * 过滤区
     * */
    //合同根据项目ID过滤
    function cntMFilter() {
      $NG.updateUI((updater, state) => {
        console.log("过滤参数检查", updater);
        updater.form.p_form_year_return_plan_m.u_cnt_name.setProps({
          onBeforeOpen: async () => {
            var phid_pc = $NG.getCmpApi("p_form_year_return_plan_m").getItem("phid_pc").getValue();
            if (!phid_pc) {
              $NG.alert("请先选择项目");
              return false;
            } else {
              return true;
            }
          },
          ...(!!$NG.getCmpApi("p_form_year_return_plan_m").getItem("phid_pc").getValue() && {
            clientSqlFilter: {
              bill_type: 1, //合同类型
              phid_pc: $NG.getCmpApi("p_form_year_return_plan_m").getItem("phid_pc").getValue(),
            },
          }),
        });
      });
    }
  });
      //获取合同数量
      function getCntCount(table, key, fun) {
        if (!$NG.getCmpApi(table).getItem("phid_pc").getValue()) return;
        $NG.execServer("getCntCount", { type: 1, phid_pc: $NG.getCmpApi(table).getItem("phid_pc").getValue() }, (res) => {
          console.log(res, "count");
          switch (res.count) {
            case 0:
              return;
            case 1:
              const datas = JSON.parse(res.data)[0].extendObjects;
              const temp_map = {};
              temp_map[key] = datas.phid;
              temp_map[`${key}_EXName`] = datas.bill_name;
              $NG.updateState((updater) => {
                updater.data[table].setProps({
                  ...temp_map,
                });
                setTimeout(() => {
                  if (fun) {
                    fun();
                  }
                }, 200);
              });
          }
        });
      }

    